#ifndef __SKILL_MANAGER_H__
#define __SKILL_MANAGER_H__

class Skill;
class CSVReader;
class SkillManager:public manager<Skill,SkillId>,public singleton<SkillManager>
{
public:
	SkillManager();
	virtual ~SkillManager();
	virtual Skill* Add(SkillId id);
	virtual bool Remove(SkillId id);
	void loadSkillCSV();
	Skill* CreateFromSkillInfo(SkillInfo& info);
	Skill* CreateFromCSVId(Int32 csv_id);

	SkillCSVInfo* GetSkillCSVInfo(Int32 csv_id);
private:
	void GenerateSkillInfo(SkillCSVInfo& csv_info,SkillInfo &info);
private:
	CSVReader m_csvReader;

	std::map<Int32,SkillCSVInfo> m_mapSkillCSV;
};
#endif
